package com.capgemini.scaffold.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.capgemini.scaffold.dto.InternDTO;
import com.capgemini.scaffold.entity.Dict;
import com.capgemini.scaffold.entity.Intern;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * 实习生持久层接口
 */
@Mapper
public interface InternMapper extends BaseMapper<Intern> {

    // 查看男的统计
    Integer queryManCount();
    Integer queryNvCount();

    /**
     * 根据id删除实习生信息
     * @param id 实习生id
     * @return 受影响的行数
     */
    @Override
    int deleteById(Serializable id);

    /**
     * 根据id查询实习生数据
     * @param id
     * @return 返回查询到的数据
     */
    Intern selectById(Integer id);

    /**
     * 查询学生信息数据
     * @return
     */
    List<Intern> findIntern();

    /**
     * 插入实习生数据
     * @param intern 携带的数据
     * @return 返回受影响的行数
     */
    @Override
    int insert(Intern intern);

    /**
     * 查询实习生表的电话号
     * @return 返回电话号
     */
    List<String> selectInternPhone();

    /**
     * 查询实习生批次
     */
    List<String> selectInternBatch();

    /**
     * 根据导师的名字查询id
     * @param name 老师的名字
     * @return 导师的Id
     */
    Integer selectTutorId(String name);

    //查询导师名字
    List<String> selectTutorName();

    //修改实习生信息
    Integer updateIntern(Intern intern);

    //分页
    IPage<Intern> findIntern(Page<Intern> page, @Param("req") InternDTO req);

    //模糊查询
    List<Intern> linkIntern(@Param("req") InternDTO req);



}
